package com.efast.cafe.portal.service.company;

import java.util.HashSet;
import java.util.List;

import com.efast.cafe.framework.service.ICafeService;
import com.efast.cafe.portal.bean.company.PortalCompanyRoleQueryBean;
import com.efast.cafe.portal.entity.company.PortalCompanyRole;
import com.efast.cafe.portal.remote.company.PortalCompanyRoleService;



/**
 * 企业角色接口服务
 * 
 * @author xuanming.feng
 *
 */
public interface IPortalCompanyRoleService extends PortalCompanyRoleService,ICafeService<PortalCompanyRole>{

	/**
	 * 分页查询企业下的角色列表
	 * 
	 * @param companyCode
	 * @return
	 */
	public PortalCompanyRoleQueryBean queryPageRoleList(String roleName, PortalCompanyRoleQueryBean bean);

	/**
	 * 新增企业角色
	 * 
	 * @param role
	 */
	public Long insertRole(PortalCompanyRole role,Long[] purviewIds);

	/**
	 * 修改企业角色
	 * 
	 * @param role
	 */
	public void updateRole(PortalCompanyRole role,Long[] purviewIds);

	/**
	 * 删除企业角色
	 * 
	 * @param roleId
	 */
	public void deleteRole(Long roleId);

	/**
	 * 根据ID获取企业角色
	 * 
	 * @param portalCompanyRoleId
	 * @return
	 */
	public PortalCompanyRole getCompanyRoleById(Long portalCompanyRoleId);

	/**
	 * 保存企业角色和权限的关系
	 * 
	 * @param portalCompanyRoleId
	 * @param purviewIds
	 */
	public void saveRolePurview(Long portalCompanyRoleId, Long[] purviewIds);

	/**
	 * 查询企业角色下拥有的权限ID
	 * 
	 * @param portalCompanyRoleId
	 * @return
	 */
	public HashSet<Long> queryPurviewByRole(Long portalCompanyRoleId);

	/**
	 * 查询所有角色,不分页
	 * @return List<PortalCompanyRole>
	 * @Author Administrator
	 * @Date 2017年9月25日
	 */

	public List<PortalCompanyRole> queryRoleAll(String roleName);
}
